/**
 * 荣者分页
 */
(function ($) {
  //默认参数
  var defaults = {
    currentPage : 1,//当前页
    leng: 9,//总页数
    activeClass: 'page-active' ,//active类
    firstPage: '首页',//
    lastPage: '末页',
    prv: '«',
    next: '»',
	  clickBack:function(){
	  }
  };
  var opts,myOptions;
  //扩展
  $.fn.extend({
    //插件名称
    page: function (options) {
      //覆盖默认参数
      myOptions = options
      opts = $.extend(defaults, options);
      //主函数
      return this.each(function () {
        //激活事件
        var obj = $(this);
        var str = '';
        var l = opts.leng;
        var ll=opts.currentPage;
        if (l > 1 && l < 10) {
            for (i = 1; i < l + 1; i++) {
                if(ll==i){
                    str += '<a href="javascript:" class="' + opts.activeClass + '">'+i+'</a>';
                }else {
                    str += '<a href="javascript:">' + i + '</a>';
                }
            }
        } else if (l > 9) {
            for (i = 1; i < 10; i++) {
                if(ll==i){
                    str += '<a href="javascript:" class="' + opts.activeClass + '">'+i+'</a>';
                }else {
                    str += '<a href="javascript:">' + i + '</a>';
                }
            }
        } else {
            str = '<a href="javascript:" class="' + opts.activeClass + '">1</a>';
        }
        var Fhtml='';//首页
        var Lhtml='';//尾页
        if(ll>1){//非第一页才显示
          Fhtml='<a class="first">'+opts.firstPage+'</a>';
        }
        if(ll<l){//非最后一个才显示
          Lhtml='<a class="last">'+opts.lastPage+'</a>';
        }

        //总共多少页
        var Thtml='<span style="' +
            '    display: inline-block;\n' +
            '    width: auto;\n' +
            '    height: 38px;\n' +
            '    border-radius: 4px;\n' +
            '    vertical-align: middle;\n' +
            '    line-height: 38px;\n' +
            '    color: #666666;\n' +
            '    font-size: 1.6rem;">共'+l+'页</span>';

        obj.html('<a><i class="icon prev">' + opts.prv + '</i></a>'+Fhtml+'<span class="pages-content" style="color: #fff">' + str + '</span>'+Lhtml+'<a><i class="icon next">' + opts.next + '</i></a>'+Thtml);

        //点击下一页
        obj.on('click', '.next', function () {
          var pageshow = parseInt($('.pages .' + opts.activeClass).text());
          if(pageshow==l){
            return false;
          }else if(pageshow > l-5&&pageshow < l){
            $('.pages .' + opts.activeClass).removeClass(opts.activeClass).next("a").addClass(opts.activeClass);
          }else if(pageshow > 0&&pageshow < 6){
            $('.pages .' + opts.activeClass).removeClass(opts.activeClass).next('a').addClass(opts.activeClass);
          }else {
            $('.pages .' + opts.activeClass).removeClass(opts.activeClass).next('a').addClass(opts.activeClass);
            fpageShow();
          }
          opts.clickBack(pageshow+1)
        });
        //点击上一页
        obj.on('click', '.prev', function () {
          var pageshow = parseInt($('.pages .' + opts.activeClass).html());
          if (pageshow == 1) {
            return false;
          }else if(pageshow > l-5&&pageshow < l+1){
            $('.pages .' + opts.activeClass).removeClass(opts.activeClass).prev('a').addClass(opts.activeClass);
                  //this.fpageBranch(pageshow-1);
          }else if(pageshow > 1&&pageshow < 6){
            $('.pages .' + opts.activeClass).removeClass(opts.activeClass).prev('a').addClass(opts.activeClass);
                  //this.fpageBranch(pageshow-1);
          }else {
            $('.pages .' + opts.activeClass).removeClass(opts.activeClass).prev('a').addClass(opts.activeClass);
                    //this.fpageBranch(pageshow-1);
            fpageShow();
          }
          opts.clickBack(pageshow-1)
        });

        //点击首页
        obj.on('click', '.first', function(){
          var pageshow = 1;
          var nowshow = parseInt($('.' + opts.activeClass).html());
          if(nowshow==1){
            return false;
          }
          $('.' + opts.activeClass).removeClass(opts.activeClass).parent().prev().find('a').addClass(opts.activeClass);
          fpagePrv(0);
          opts.clickBack(pageshow)
        })
        //点击尾页
        obj.on('click', '.last', function(){
          var pageshow = l;
          var nowshow = parseInt($('.' + opts.activeClass).html());
          if(nowshow==l){
            return false;
          }
          if(l>9){
            $('.' + opts.activeClass).removeClass(opts.activeClass).parent().prev().find('a').addClass(opts.activeClass);
            fpageNext(8);
          }else{
            $('.' + opts.activeClass).removeClass(opts.activeClass).parent().prev().find('a').addClass(opts.activeClass);
            fpageNext(l-1);
          }
          opts.clickBack(pageshow)
        })
          //页码点击事件
        obj.on('click', '.pages-content a', function(){
          var $this = $(this);
          var pageshow= parseInt($this.html());
          var nowshow = parseInt($('.pages .' + opts.activeClass).html());
          if(pageshow==nowshow){
            return false;
          }
          if(l>9){
            if(pageshow > l-5&&pageshow < l+1){
              $('.pages .' + opts.activeClass).removeClass(opts.activeClass);
              $this.addClass(opts.activeClass);
              fpageNext(8-(l-pageshow));
            }else if(pageshow > 0&&pageshow < 5){
              $('.pages .' + opts.activeClass).removeClass(opts.activeClass);
              $this.addClass(opts.activeClass);
              fpagePrv(pageshow-1);
            }else{
              $('.pages .' + opts.activeClass).removeClass(opts.activeClass);
              $this.addClass(opts.activeClass);
              fpageShow();
            }
          }else{
            $('.pages   .' + opts.activeClass).removeClass(opts.activeClass);
            $this.addClass(opts.activeClass);
          }
          opts.clickBack(pageshow)
        })

        function fpageShow(){
          var pageshow = parseInt($('.pages .' + opts.activeClass).html());
          var pageStart = pageshow - 4;
          var pageEnd = pageshow + 5;
          var str1 = '';
          for(i=0;i<9;i++){
            str1 += '<a href="javascript:" class="">' + (pageStart+i) + '</a>'
          }
          obj.find('.pages-content').html(str1);
          obj.find('.pages-content a').eq(4).addClass(opts.activeClass);
		      
        }

        function fpagePrv(prv){
          var str1 = '';
          if(l>8){
            for(i=0;i<9;i++){
              str1 += '<a href="javascript:" class="">' + (i+1) + '</a>'
            }
          }else{
            for(i=0;i<l;i++){
              str1 += '<a href="javascript:" class="">' + (i+1) + '</a>'
            }
          }
          obj.find('.pages-content').html(str1);
          obj.find('.pages-content a').eq(prv).addClass(opts.activeClass);
        }

        function fpageNext(next){
          var str1 = '';
          if(l>8){
            for(i=l-8;i<l+1;i++){
              str1 += '<a href="javascript:" class="">' + i + '</a>'
            }
           obj.find('.pages-content').html(str1);
           obj.find('.pages-content a').eq(next).addClass(opts.activeClass);
          }else{
            for(i=0;i<l;i++){
              str1 += '<a href="javascript:" class="">' + (i+1) + '</a>'
            }
           obj.find('.pages-content').html(str1);
           obj.find('.pages-content a').eq(next).addClass(opts.activeClass);
          }
        }
      });
    },
    setLength: function(newLength){
      myOptions.leng = newLength
      $(this).html('')
      $(this).unbind()
      $(this).page(myOptions)
    }
  })
})(jQuery);
